/* 
 * File:   Modelo.cpp
 * Author: cesar
 * 
 *  Implementacion de la clase Modelo.hpp, permite crear objetos graficos a partir 
 * de modelos .obj
 */

#include "Modelo.hpp"


/**
 * Constructor de la clase Modelo.
 * 
 * @param scalado : La escala que se le quiere aplicar al modelo.
 * @param nombre : El nombre del modelo.
 * @param pos_x : La posicion del Modelo en el eje X.
 * @param pos_y : La posicion del Modelo en el eje Y.
 * @param pos_z : La posicion del Modelo en el eje Z.
 */
Modelo::Modelo(GLfloat scalado, char * nombre,GLfloat pos_x, GLfloat pos_y, GLfloat pos_z): ObjetoGrafico(pos_x,pos_y,pos_z) {
    
    this->escala=scalado;
    this->model = glmReadOBJ(nombre);
        
        
    
    
}

/**
 * Metodo que permite dibujar el modelo en la escena. Este metodo es virtual
 * y heredado de ObjetoGrafico.
 */
void Modelo::dibujar(){

    glPushMatrix();
    
        
        glTranslatef(x,y,z);
        
        //si el objeto fue seleccionado se dibuja el "toro" que lo rodea
        
        
        glScalef(escala,escala,escala);
      
       
        glmDraw(model, GLM_MATERIAL|GLM_SMOOTH);
        
        
    glPopMatrix();
    

}


